/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
 */
jQuery.extend(jQuery.validator.messages, {
	required : "必填",
	remote : "请修正该字段",
	email : "请输入正确格式的电子邮件",
	url : "请输入合法的网址",
	date : "请输入合法的日期",
	dateISO : "请输入合法的日期",
	number : "请输入合法的数字",
	digits : "只能输入整数",
	creditcard : "请输入合法的信用卡号",
	equalTo : "请再次输入相同的值",
	accept : "请输入拥有合法后缀名的字符串",
	maxlength : jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
	minlength : jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
	rangelength : jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
	range : jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
	max : jQuery.validator.format("请输入一个最大为 {0} 的值"),
	min : jQuery.validator.format("请输入一个最小为 {0} 的值")
});

// IP地址验证
$.validator
		.addMethod(
				"ip",
				function(value, element) {
					var ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
					return this.optional(element)
							|| (ip.test(value) && (RegExp.$1 < 256
									&& RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256));
				}, "请输入正确格式的IP");

// 端口验证
$.validator.addMethod("port", function(value, element) {
	return this.optional(element) || (isPort(value));
}, "请输入1-65535范围内的端口号");

//验证两次输入值是否不相同  
jQuery.validator.addMethod("notEqualTo", function (value, element, param) {  
	if(value == '' || $(param).val() == '') {
		return true;
	}
    return value != $(param).val();  
}, $.validator.format("两次输入不能相同!"));  

// 判断端口范围
function isPort(str) {
	var port = parseInt(str);
	if (port >= 1 && port <= 65535) {
		return true;
	}
	return false;
}

jQuery.extend(jQuery.validator.defaults, {

	errorPlacement : function(error, element) {
		if (!error.is(':empty')) {
			element.first().qtip({
				overwrite : true,
				content : error,
				position : {
					my : 'left center',
					container : element.parent(),
					at : 'right center'
				},
				style : 'qtip-bootstrap',
				show : true,
				hide : false
			}).qtip('option', 'content.text', error);
		} else {
			element.qtip('destroy');
		}
	},
	success : function(element) {
		var e = $('#' + element.first().attr('for')).closest('.control-group');
		e.removeClass('error').addClass('success');
		$('#' + element.first().attr('for')).qtip('destroy');
	},
	highlight : function(element) {
		$(element).closest('.control-group').removeClass('success').addClass(
				'error');
	},
	errorClass : "text-error"
});